2. Git Action
1. GitHub Actions
GitHub Actions 是 GitHub 提供的持续集成(CI/CD)服务,它允许开发者自动化软件开发工作流,如代码测试、构建、部署等。
info
GitHub Actions 通过 .github/workflows 目录下的 YAML 配置文  件定义。
2. GitHub Actions 主要用途
- 自动测试:在代码提交或 PR 时运行单元测试。
 - 自动部署:构建并部署应用到服务器或云平台。
 - 代码质量检查:使用 Lint 工具检查代码格式。
 - 自动化发布:创建版本、打包并发布到 npm、Docker Hub 等。
 
3. GitHub Actions 代码示例
3.1 基本工作流(Workflow)
下面是一个 GitHub Actions 基础示例,在 push 事件触发时运行一个 Job。
ame: Basic Workflow
on: [push]
jobs:
  example_job:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
      - name: Run a simple script
        run: echo "Hello GitHub Actions!"
tip
此工作流在 push 事件触发时执行,拉取代码并运行 echo 命令。
3.2 运行多个 Job
- YAML
 
name: Multi-Job Example
on: [push]
jobs:
  job1:
    runs-on: ubuntu-latest
    steps:
      - name: Step in Job 1
        run: echo "This is Job 1"
  job2:
    runs-on: ubuntu-latest
    needs: job1
    steps:
      - name: Step in Job 2
        run: echo "This is Job 2"
caution
needs: job1 说明 job2 依赖于 job1,必须等待 job1 结束后才能执行。
4. 进阶用法
4.1 使用 Secrets 进行身份验证
name: Deploy to Server
on: [push]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
      - name: Deploy via SSH
        run: |
          ssh -o StrictHostKeyChecking=no user@server "deploy_script.sh"
        env:
          SSH_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
info
secrets.SSH_PRIVATE_KEY 需要在 GitHub 仓库的 Settings > Secrets 中配置。
5. 使用 Matrix 进行并行测试
name: Matrix Test
on: [push]
jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [14, 16, 18]
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node-version }}
      - name: Install dependencies
        run: npm install
      - name: Run tests
        run: npm test
tip
matrix 允许在多个环境(如不同 Node.js 版本)上同时运行测试,提高兼容性。